package testDemo2;

import javax.crypto.spec.PSource;

class Base {
    int a;
    int b;

    public void methodA() {
        System.out.println("Base中的methodA");
    }

    public void methodB(){
        System.out.println("Base中的methodB");
    }
}

class Derived extends Base{
    int a;
    char b;
    public void methodA(int a){
        System.out.println("Derived中的methodA");
    }//和父类的methodA构成重载
    public void methodB(){
        System.out.println("Derived中的methodB");
    }//重写Base中的methodB方法

    public void methodC(){
        a = 100; // 等价于： this.a = 100;
        b = 101; // 等价于： this.b = 101;
        super.a = 200;//访问到父类的a
        super.b = 201;//访问到父类的b

        // 父类和子类中构成重载的方法，直接可以通过参数列表区分清访问父类还是子类方法
        methodA(); // 没有传参，访问父类中的methodA()
        methodA(20); // 传递int参数，访问子类中的methodA(int)

        // 如果在子类中要访问重写的基类方法，则需要借助super关键字
        methodB(); // 直接访问，则永远访问到的都是子类中的methodA()，基类的无法访问到
        super.methodB(); // 访问基类的methodB方法
    }
}
public class test {
}
